package com.yc.jpyy.complaint.service;

import com.yc.jpyy.base.util.PageBean;

import org.springframework.dao.DataAccessException;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ComplaintInfoService {

    int add(Map<String, Object> companyInfo) throws DataAccessException;
    
    int addForWx(Map<String, Object> paramsMap) throws DataAccessException,Exception;
    
    String getDbcode(Map<String, Object> paramsMap) throws DataAccessException,Exception;

    Map<String, Object> findByID(Map<String, Object> companyInfo) throws DataAccessException;
   
    int update(Map<String, Object> companyInfo) throws DataAccessException;

    int del(Map<String, Object> companyInfo) throws DataAccessException;

    int delforUpdate(Map<String, Object> companyInfo) throws DataAccessException;

    Map<String, Object> getDriverByVehicleNo(Map<String, Object> companyInfo) throws DataAccessException;

    //分页查询
    PageBean findPage(Map<String, Object> paramsMap)throws DataAccessException;
    
    //分页查询（打印）
    PageBean findPagePrint(Map<String, Object> paramsMap)throws DataAccessException;
    
    //查询总数
    int findCount(Map<String, Object> paramsMap)throws DataAccessException;

    /**
     * 获取所有车辆信息
     * @return
     */
    List getVehicleAll(Map<String,Object> paramsMap);

    /**
     * 根据车牌号获取车辆信息
     * @param paramsMap
     * @return
     */
    List getVehicleByVehicleNo(Map<String, Object> paramsMap);

    /**
     * 处理中心回复
     *
     * @param id
     * @param complaintCenterRequirements 投诉中心要求
     * @param complaintCenterReply 投诉中心回复内容
     * @param date  回复时间
     * @return
     */
    int complaintHandleByCentent(int id, String complaintCenterRequirements, String complaintCenterReply, Date date);

    /**
     * 投诉转办
     * @param id
     * @param isDistribute
     * @param distributeUser
     * @param distributeTime
     * @return
     */
    void complainDistribution(int id, int isDistribute, String distributeUser, Date distributeTime);

    /**
     * 获取公司需要处理的投诉信息
     * @param paramsMap
     * @return
     */
    List getCompanyComplaint(Map<String, Object> paramsMap);

    /**
     * 公司处理投诉信息
     * @param paramsMap
     * @return
     */
    int complaintHandleByCanpany(Map<String, Object> paramsMap);
    
    /**
     * 更改是否催办
     * @param paramsMap
     * @return
     */
    int updateIsUrge(Map<String, Object> paramsMap);

    /**
     * 根据车牌号与车架号 查看车辆是否存在
     * @param paramsMap
     * @return
     */
    boolean isVehicleExists(Map<String,Object> paramsMap);

    /**
     * 根据车牌号获取车辆投诉信息
     * @param paramsMap
     * @return
     */
    PageBean getComplaintByVehicleNo(Map<String,Object> paramsMap);

    /**
     * 根据身份证号查询车辆信息，分页显示
     * @param paramsMap
     * @return
     */
    PageBean getVehiclesByIdNumber(Map<String, Object> paramsMap);
    
    
    Map<String, Object> getVehicleOpenid(Map<String, Object> companyInfo) throws DataAccessException;

    Map<String, Object> updateComplaintTransfer(Map<String, Object> companyInfo) throws DataAccessException;

    Map<String, Object> getComplaintInfoByPage(Map<String, Object> companyInfo) throws DataAccessException;

    Map<String, Object> checkIsBind(Map<String, Object> companyInfo) throws DataAccessException;
    
    Map<String, Object> updateComplaintAnnexByID(Map<String, Object> companyInfo) throws DataAccessException;

}
